﻿#include <stdio.h>
#include <stdbool.h>
#include <string.h>


/*
转义字符


 \?：在书写连续多个问号时使⽤，防⽌他们被解析成三字⺟词，在新的编译器上没法验证了。
 \'：⽤于表⽰字符常量'
 \"：⽤于表⽰⼀个字符串内部的双引号
 \\：⽤于表⽰⼀个反斜杠，防⽌它被解释为⼀个转义序列符。
 \a：警报，这会使得终端发出警报声或出现闪烁，或者两者同时发⽣。
 \b：退格键，光标回退⼀个字符，但不删除字符。
 \f：换⻚符，光标移到下⼀⻚。在现代系统上，这已经反映不出来了，⾏为改成类似于
 \n：换⾏符。
 \r：回⻋符，光标移到同⼀⾏的开头。
 \t：制表符，光标移到下⼀个⽔平制表位，通常是下⼀个4/8的倍数。
 \v：垂直分隔符，光标移到下⼀个垂直制表位，通常是下⼀⾏的同⼀列。
*/

//\a
//int main()
//{
//	printf("%c",'\a');/* \a 会使终端报警*/
//	return 0;
//}

//int main()
//{
//	printf("%s","abcd");
//	printf("%s","abcd\b");
//	printf("%s","abcd\bq");
//	getchar();
//	return 0;
//}

//int main()
//{
//	printf("abcefg\r");
//	getchar();
//	return 0;
//}


//\ddd；表⽰1~3个⼋进制的数字
// 8进制中没有8，9
//\xdd：dd表⽰2个⼗六进制数字
//int main()
//{
//	printf("%c\n",'\123');
//	printf("%c\n",'\x2f');
//	return 0;
//}


//int main()
//{
//	char arr[] = {"abcdef"};
//	printf("%d\n", strlen(arr));
//	return 0;
//}

//int main()
//{
//	char ch[] = {'a','b','c'};
//	printf("%d\n", strlen(ch));
//	return 0;
//}

//int main()
//{
//	;//一个分号就为空语句
//	int a = 20;//表达式语句就是在表达式的后边加上分号
//	//赋值表达式语句
//	return 0;
//}


//在0-100中打印出2的倍数
//int main()
//{
//	int i = 0;//设置一个变量
//	for (i = 0; i <= 100; i++)
//	{
//		//1到100
//		if (i % 2 == 0)
//		{
//			printf("%d ",i);符合语句
//		}
//	}
//	return 0;
//}




//数据类型
/*
 1.1 字符型
 char表示字符类型
 1.2 整型
 1.3 浮点型
 1.4 布尔类型
 布尔类型的使⽤得包含头⽂件<stdbool.h>
布尔类型变量的取值是：true或者false

*/


//int main()
//{
//	short int ;//短整形
//	int ;//整形
//	long int ;//长整形
//	long long int ;//
//	return 0;
//}

//int main()
//{
//	char a = 67;
//	printf("%c", a);
//	return 0;
//}

//int main()
//{
//	_Bool lilike = true;
//	if (lilike)
//	{
//		printf("I like");
//	}
//	else
//	{
//		printf("I don't like");
//	}
//	return 0;
//}


//int main()
//{
//	printf("%zd\n", sizeof(char));
//	printf("%zd\n", sizeof(_Bool));
//	printf("%zd\n", sizeof(short));
//	printf("%zd\n", sizeof(int));
//	printf("%zd\n", sizeof(long));
//	printf("%zd\n", sizeof(long long));
//	printf("%zd\n", sizeof(float));
//	printf("%zd\n", sizeof(double));
//	printf("%zd\n", sizeof(long double));//在vs上是8个字节，在gcc上测试是16return 0
//	return 0;
//	}

//sizeof操作符 
//sizeof 是一个关键字,专⻔是⽤来计算sizeof的操作符数的类型⻓度的
//单位是字节
//用百分号zd打印
//int main()
//{
//	int a = 100;
//	printf("%zd\n", sizeof(a));
//	printf("%zd\n", sizeof 3 + 5);
//	printf("%zd\n", sizeof (3 + 5));
//	printf("%zd\n", sizeof (3 + 3.5));
//	printf("%zd\n", sizeof a);
//	return 0;
//
//}

//int main()
//{
//	short a = 2;
//	int b = 2;
//	double c = 5;
//	printf("%zd\n ",sizeof a + b);
//	printf("%zd\n ",sizeof(a= b +1) );
//	printf("%zd\n ",sizeof (a + b));
//	printf("%zd\n ",sizeof (a + c));
//	return 0;
//}


//signed 和unsigned
//signed关键字，表⽰⼀个类型带有正负号，包含负值；
//unsigned关键字，表⽰该类型不带有正负号，只能表⽰零和正整数。